package cn.lxh.blog.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;

import java.util.Date;

/**
 * Article文章类
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Document(collection = "article") // MongoDB会自动生成一个article集合(表)
public class Article {

    @Id
    private String _id; // MongoDB里面的自增长主键id

    /** id表示文章编号 */
    private Long id;

    /** articlePic表示文章封面 */
    private String articlePic;

    /** articleName表示文章名称 */
    private String articleName;

    /** articleTag表示文章标签 */
    private String articleTag;

    /** articleType表示文章类型 */
    private Long articleType;

    /** articleState表示文章状态 */
    private Integer articleState;

    /** topState表示文章是否置顶 */
    private Integer topState;

    /** publishId表示文章作者 */
    private Long publishId;

    // 当前字段转换成Json格式数据时格式化, 格式pattern=年[year]-月[month]-日[day]
    // timezone时区, 中国在时间标准时间GMT的东八区, 也叫+8区
    /** createTime表示文章创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime = new Date();

    /** updateTime表示文章修改时间 */
//    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;

    /** articleReadCount表示文章阅读量 */
    private Integer articleReadCount;

    /** articleStarNum表示文章点赞数 */
    private Integer articleStarNum;

    /** articleCommentNum表示文章评论数 */
    private Integer articleCommentNum;

    /** articleRemark表示文章简介 */
    private String articleRemark;

    /** articleContent表示文章内容 */
    private String articleContent;

    /** articleTypeName表示文章类型名称 */
    private String articleTypeName;

    /** publishName表示文章发布人姓名 */
    private String publishName;

    /** year表示文章创建年份 */
    private String year;

    /** month表示文章创建月份 */
    private String month;

    /** day表示文章创建号数 */
    private String day;

}
